Reducing network and battery consumption during content delivery and playback

ABSTRACT

Methods and systems for content delivery are provided. A user of a media device may select one or more media content files, which may be located locally or remotely. The content selected by the user is located. If selected content is located at a remote source, that file is downloaded to the media device using maximum available radio bandwidth and stored in local storage. That data is provided as a stream to a media player from the local storage.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the priority benefit of U.S. provisional patent application No. 61/062,797 filed Jan. 28, 2008 and entitled “Systems and Methods for Data Transport,” the disclosure of which is incorporated herein by reference.

This application is related to U.S. patent application Ser. No. 12/002,300 filed Dec. 13, 2007 and entitled “Content Delivery to a Mobile Device from a Content Service.”

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to content delivery. More specifically, the present invention relates to reducing network and battery consumption during content delivery and playback.

2. Description of Related Art

Media content (e.g., audio and/or video), may be played using any variety of media players including, RealPlayer® from Real Networks, the QuickTime®/iTunes® media player from Apple and the Windows Media Player® from Microsoft. One or more media players may be present on any variety of media devices such as personal computers, laptops, MP3 players and iPods®, and mobile phones. Most media devices are now portable and allow the user to play media content regardless of the location of the user.

The media content may be provided to a media device from a variety of content sources. Content sources may include a personal computer, a media server, a database of content, and various Internet-based content providers (e.g., the iTunes® Music Store, MySpace®, and YouTube®). The media content is traditionally delivered from the content source to the media device via download or streaming.

Downloading a media file involves the transfer of the media file from a content source to a recipient device (e.g., the aforementioned media device). Once downloaded, the media content is stored locally on the device. While downloading generally allows for delivery of content quickly (subject to network bandwidth constraints), there are various problematic issues involved with downloading content to a media device. For example, a particular media device may not have sufficient local storage to store a complete copy of a media file. This may prove particularly problematic in those instances where users may not be able to play the media file until it is completely downloaded.

Streaming of content usually allows the user to play a media file as it is being delivered to the media device. A streamed file is delivered to a media device at a rate required for the media device to play it (e.g., an encoded bit rate). While streaming generally uses less bandwidth than downloading a file, the rate at which data is streamed to a device may be much slower than the rate at which the data could be downloaded. Streamed media, however, may generally begin playback as soon as large enough cache of data has been delivered to a memory buffer at the media device as to allow for uninterrupted playback.

Streamed media is, however, often inferior in quality with respect to sampling and bit rate. Further, the ‘just in time’ delivery approach for streamed media often results in more glitches and skips when the memory buffer becomes ‘starved’ of data. Streamed media, too, is usually not permanently or semi-permanently stored by the media device. Data associated with the streamed media is often discarded almost immediately after it is initially rendered by the media player. Thus, if the user wishes to replay a media file or a portion thereof again (e.g., ‘seek’ or ‘rewind’ the media), the data must be re-streamed to the media device.

For portable media devices, especially mobile and smart phones, downloading and streaming may occur using a wireless radio embedded in the portable device. While downloading files to portable media devices may occur at a maximum available bandwidth of the network just as would occur with a laptop or desktop computer, the user may still have to wait until an entire media file is downloaded before being able to commence playback. With streamed media, the already low quality and lack of smooth playback may be exacerbated from being ‘wirelessly’ streamed as wireless network usually encounter more disruptive interference than a landline network such as DSL or cable.

Mobile devices with a wireless radio also consume battery power at an accelerated rate. The wireless radio of a mobile device is one of the largest-if not the largest-consumer of already limited battery resources in the device. Many mobile devices will not last more than 90 minutes to an hour if the radio is in constant use. Wireless networks, which were already under stress due to the continued proliferation of mobile devices that now outnumber ‘landlines’ have been placed under additional strains in light of the increasing availability of remote access to content. Downloading and/or streaming of music consumes a large amount of bandwidth-video is even more bandwidth intensive. When multiplied by the number of users accessing content and in multiple instances, many networks are operating at full capacity. There is, therefore, a need in the art for improved methods and systems of content delivery that reduce network and battery consumption during delivery and playback.

SUMMARY OF THE INVENTION

Exemplary systems and methods of the present invention provide for content delivery. A user of a media device may wish to play one or more media content files. The media content files may be located on the media device in various content sources, including a personal computing device, a storage device, and various Internet-based content providers. If a selected media content file is located on a remote source, that file is downloaded wirelessly to local storage of the media device at maximum available network bandwidth. As soon as enough data from the media file has been downloaded, that data is provided as a stream to a media player from local storage.

Various embodiments of the present invention include methods for content delivery. Such methods may include receiving one or more user selections of content from local and remote sources, downloading the content at maximum available network bandwidth using a radio, storing the downloaded content to local storage, streaming the stored content to a media player, and deactivating the radio when the content is completely downloaded. Some embodiments further provide for generating a playlist, downloading according to the order of the playlist, and limiting access to the local storage.

Embodiments of the present invention further include media devices for receiving content delivery. Such media devices may include a user interface, a media broker, a radio, and a media proxy. Some embodiments may further include a media player, a playlist generator, a local storage device, a storage/cache handler, and a radio/power manager.

Various embodiments of the present invention include systems for content delivery. Such systems may include one or more content sources and a media device. Some embodiments may further include a relay for processing content from the content sources before the content is downloaded to the media device.

Embodiments of the present invention include computer media and instructions for content delivery. Such embodiments may include computer-readable storage media having a program embodied thereon that is executable by a computer processor to perform a method for content delivery.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is an illustration of an exemplary system for content delivery.

FIG. 2 is an illustration of an exemplary media device that may be used in a content delivery system like that illustrated in FIG. 1.

FIG. 3 is a flowchart depicting an exemplary method for content delivery.

DETAILED DESCRIPTION

A user of a media device may select one or more media content files, which may be located on a local storage device or at one of several remote storage sources. If a selected media content file is located at a remote source, that file is downloaded to the media device using maximum available network bandwidth. That data is then provided in a stream of content to the media player from local device storage once the content is completely downloaded.

FIG. 1 is an illustration of an exemplary system for content delivery 100. A media device 110 may request and receive content from various remote content sources 130A-C. A relay server 120 may intercept communication transmission between the media device 110 and the various remote content sources 130A-C. Relay server—and the system 100 in general—may implement a data transport system architecture like that described in U.S. provisional patent application No. 61/062,797, the disclosure of which has previously been incorporated herein by reference.

A communications network in which the aforementioned system 100 is implement may generally be understood as a group of computing devices that may be communicatively connected to one another. The computing devices in the communications network of system 100 may be coupled to one another via a variety of communications channels (e.g., mobile telephone base stations, wired local area networks, Wi-MAX). In that regard, networks should be interpreted as being inclusive rather than exclusive.

Media device 110 may be representative of any variety of media devices including MP3 players, portable media players, cellular telephones, smart phones, PDAs, handheld computers, and laptop/notebook computers that are capable of communicating wirelessly and/or over the Internet. Media device 110 may include one or more media player applications (e.g., the iTunes® media player), which may be capable of playing various types of downloaded or streamed media.

Optional relay server 120 may convey communications (e.g., content requests, provided content) between the media device 110 and the various content sources 130A-C. Relay server 120 may be further configured to intercept and process media content for playback on the media device 110. Processing may include reformatting the content or converting the content for playback in a particular media player application as described in co-pending U.S. patent application Ser. No. 12/002,300 and entitled “Content Delivery to a Mobile Device from a Content Service” and filed Dec. 13, 2007, the disclosure of which has previously been incorporated herein by reference.

Remote content sources 130A-C may include any remote content source available to the user. Remote content sources 130A-C may include a personal computing device or storage device belonging to or associated with the user or various Internet-based content providers. For example, a user may store media content on a personal computing device or a storage device coupled to a network. While such content may not be immediately available on media device 110, that content (or selections thereof) may be located and delivered to the media device 110 from the personal computer or storage device (i.e., content sources 130A-C).

FIG. 2 is an illustration of an exemplary media device 110 that may be used in a content delivery system like that illustrated in FIG. 1. The media device 110 may include a user interface 210, a media player 220, a playlist generator 230, a media proxy 240, a media broker 250, local storage 260, a storage/cache handler 270, and a radio/power manager 280.

User interface 210 may be configured to display a user environment through which various applications, such as media player 220, may be accessed and manipulated by the user. User interface 210 may operate alone or in conjunction with media player 220 and/or playlist generator 230 to provide a display of available content, playlists, etc. The user may designate one or more selections of content available locally or over a network from a remote content source and to view the selections as a playlist in the display provided by user interface 210.

Media device 110 may further include one or more media players 220. Media player 220 may be any application for receiving and playing media content. Examples of media player 220 may include the iTunes® media player from Apple Computer, the Windows Media Player® from Microsoft, or RealPlayer® from RealNetworks. Media player 220 may receive a user selection via the user interface 210 and generate a request (e.g., an HTTP request) for particular content designated by the user selection.

Media device 110 may further include a playlist generator 230. Playlist generator 230 generates a list of content to be played on media player 220 based on one or more user selections concerning content. For example, a user may select a particular album or a custom playlist. The content included in the album or custom playlist may be represented in the playlist. Some media player applications 220 may have a built-in playlist generator whereas other devices may implement the playlist generator 230 as a separate application that interacts with the user interface 210 and/or media player 220.

The media proxy 240 of FIG. 2 provides information concerning the content available to the user. For example, content may be located in multiple locations including remote and local storage. Media proxy 240 may simulate being a source of all such content regardless of actual content location. Operating in conjunction with user interface, media proxy 240 may provide the user with information concerning all the content available to the user regardless of actual location. Media proxy 240 may further be configured to respond to user selections indicating the desire for access to certain content, provide the selections to media broker 250 for location and/or retrieval, and to stream the selected content to media player 220 following download of said content

If the user selects content that is not available locally, that content may be downloaded from one or more the remote content sources 130A-C. Media proxy 240 may relay the user selections (or playlist of user selections) to media broker 250, which locates the content associated with the user selections over a network. Content determined to be located on a remote content source is downloaded as quickly as possible to media device 110.

Operating alone or in conjunction with a radio/power manager 280, media broker 250 aggressively retrieves remotely located content using maximum available radio bandwidth until the content is completely downloaded. For example, content may be encoded at a bit rate of 64 kbps per second but the media broker 250 may instruct for the content to be retrieved and transmitted at 256 kbps or some other transmission rate in excess of a real-time playback rate. In this way, the broker 250 and radio/power manager 280 may make use of unused network bandwidth to more rapidly retrieve the content for storage and playback at the device 110.

In some embodiments, a predetermined amount of content may be downloaded at an accelerated rate such that a ‘cushion’ exists within local storage for playback whereby streaming of the content will not exceed the available content in the buffer. Once that predetermined amount of content is achieved, the radio may throttle back and download content at its normal bit rate. Throttling back the radio in this embodiment continues to reduce stress on the network.

Media broker 250 may retrieve remotely located content based on the order of the playlist. For example, tracks 2, 3, and 6 of a playlist may be located on a remote content source. Media broker 250 would, in conjunction with radio/power manager 280, retrieve track 2 first, then track 3 second, and track 6 last. If a user wishes to skip to a particular track, however, media broker 250 may aggressively pull in content based on the updated list. For example, if the user indicates that the user wishes to play track 6, media broker 250 may immediately begin to retrieve track 6 utilizing the aggressive download techniques described above.

Media device 110 may include one or more local storage devices 260. Local storage 260 may include a local hard drive, random access memory (RAM), flash drive, or removable flash device. The remotely located content retrieved by media broker 250 may, in some instances, be stored in local storage 260. The retrieved content stored in local storage 260 may be accessed by media proxy 240, which effectively streams the content to media player 220 thereby bypassing the download operation described above.

Media device 110 may further include an optional storage/cache handler 270 for managing one or more local storage devices and/or caches. Some media devices 110 may have limited storage available, so storage/cache handler 270 may determine how the downloaded content is stored. For example, storage/cache handler 270 may set aside some RAM for downloaded content, discard the content after playing, and reusing the same RAM for caching further downloaded content. Various metrics may be used to maintain the storage. For example, recently or repeatedly accessed content may be retained over content that has not been played in some time or that is played on a less regular basis. The number of playlists in which particular content appears may also be of relevance with respect to storage decision making processes.

Radio/power manager 280 allows for control of the radio and central processing unit (CPU) of the media device 110. Radio/power manager 280 allows for transactions to be conducted in a manner most likely to preserve battery resources at device 110 and network resources related thereto (e.g., a particular network over which the device 110 operates). For example, downloading content at a maximum or accelerated rate in light of available bandwidth allows for the content to be received faster. This aggressive download, in turn, allows for the radio to throttle back and/or shut down sooner thereby preserving battery resources and reducing ongoing stress on the network. In contrast, streaming content at a lower rate may require that the radio to operate for a longer period of time. In some embodiments, radio/power manager 280 may be part of media broker 250 or a separate component operating in conjunction with media broker 250. The manager 280 may operate based on certain instructions provided by the aforementioned broker 250, which may provide those instructions in light of the content or amount of content to be retrieved.

FIG. 3 is a flowchart depicting an exemplary method 300 for content delivery. Through method 300, a user selection is received, a playlist generated, content corresponding to the playlist requested, and the requested content is located. If requested content is located remotely, the content is downloaded using maximum available network bandwidth, the downloaded content is stored or cached once completely downloaded, and the content is streamed to the media player on the media device.

In step 310, one or more user selections are received. A user may request that certain content be played using a media player (e.g., media player 220) on a media device like media device 110. A user may simply request a particular album or tracks from that album. Alternatively, media proxy 240 may simulate being the source of the content and provide menu information for display by user interface 210, and the user may designate content for playback from the display.

In step 320, a playlist is generated by playlist generator 230 based on the one or more user selections. If an album was selected by the user, the playlist may include all the tracks on the album listed in order of publication. Alternatively, if the user selects tracks from multiple albums, a custom playlist may be generated in which the tracks may be listed in the order designated by the user.

In step 330, content designated by the user selections is requested by the media player (e.g., media player 220). For example, media player 220 may make an HTTP request for the designated content. Because media proxy 240 simulates being the source of content, the requests for content are relayed to media proxy 240.

In step 340, the designated content is located by the media broker 250. There may be multiple sources for the designated content including local and remote content sources. For example, media broker 250 may determine the location for each track in an album. Tracks 1-3 may be located in a local flash drive, tracks 4-7 may be located on the user's PC, and track 8-11 may be available from an Internet content provider (e.g., iTunes®).

In step 350, a determination is made concerning whether designated content is located on a remote content source. If designated content is determined to be located remotely, the method proceeds to step 360. If designated content is determined to be located locally, the method proceeds to step 380. For a playlist of multiple tracks, the determination of local or remote location may be made with respect to each track.

In step 360, the designated content is downloaded using maximum available network bandwidth. Media device 110 can communicate and download content wirelessly using a radio within the device. The media broker 250 aggressively uses maximum available bandwidth to download content as quickly as possible. Radio/power manager 280 may manage the download so that it proceeds quickly and efficiently. Remotely located content may be downloaded in order of the playlist. If a user changes the order, the order of content to be downloaded may change as well.

In step 370, downloaded content is stored or cached locally. Depending on the specific media device 110, there may be various possible local storage devices, such as local storage 260. In some instances, there may not be enough local storage for all the tracks in a playlist to persist locally. If so, storage/cache handler 270 may manage content storage so that tracks from the playlist can be played in order.

In step 380, content is streamed to the media player 220 from local storage 260. Some content may already be in local storage 260, while some content may be downloaded from a remote content source and then stored in local storage 260. Such content may be accessed by media proxy 240, which provides the content as a stream to media player 220 in the order of the playlist generated in step 320.

While the present invention has been described in connection with a series of preferred embodiment, these descriptions are not intended to limit the scope of the invention to the particular forms set forth herein. To the contrary, the present descriptions are intended to cover such alternatives, modifications, and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims and otherwise appreciated by one of ordinary skill in the art. 

1. A method for reducing power consumption during content delivery and playback, comprising: receiving a selection designating content at a content source; downloading the designated content to local storage of a media device, wherein the content is downloaded at a maximum available network bandwidth using a radio at the media device; streaming a downloaded portion of the designated content from the local storage to a media player of the media device; and deactivating the radio when the designated content is completely downloaded.
 2. The method of claim 1, further comprising generating an interface for receiving the one or more user selections.
 3. The method of claim 1, further comprising generating a playlist based on the one or more user selections.
 4. The method of claim 3, wherein downloading the content is based on an order of the playlist.
 5. The method of claim 3, further comprising updating the playlist based on user input.
 6. The method of claim 1, further comprising generating a request to a proxy for the designated content.
 7. The method of claim 1, wherein the downloaded content in the local storage may be provided to the media player based on user input.
 8. The method of claim 7, wherein access to the local storage device is limited to one or more media players associated with the media device.
 9. A media device for receiving content delivery, comprising a user interface configured to receive a selection designating content; a media broker configured to locate the designated content at a content source; a radio configured to download the located content to local storage at a maximum available network bandwidth, the radio further configured to deactivate when the designated content is completely downloaded; and a media proxy configured to provide a downloaded portion of the designated content via streaming from the local storage to a media player.
 10. The media device of claim 9, further comprising the media player, the media player being configured to play streamed content.
 11. The media device of claim 9, further comprising a playlist generator configured to generate a playlist based on the one or more user selections.
 12. The media device of claim 9, wherein the media broker is further configured to download the designated content from the remote content source based on an order of the playlist.
 13. The media device of claim 9, wherein the media proxy is further configured to provide a user with information concerning content from one or more content sources;
 14. The media device of claim 9, wherein the local storage is configured to provide the downloaded content to the media player based on user input.
 15. The media device of claim 9, wherein access to the local storage is limited to one or more media players associated with the media device.
 16. The media device of claim 9, further comprising a storage handler configured to manage content from one or more local content sources.
 17. The media device of claim 9, further comprising a radio/power manager configured to manage the power of the radio.
 18. A system for content delivery, comprising a content source; and a media device including local storage, a radio, and a media player, the media device configured to: receive a selection designating content from the content source, download the designated content to the local storage at a maximum available network bandwidth using the radio, stream a downloaded portion of the designated content from the local storage to the media player, and deactivate the radio when the designated content is completely downloaded.
 19. The system of claim 18, further comprising a relay server configured to intercept content from one or more remote content sources and to process the intercepted content for playing on the media device.
 20. A computer-readable storage medium having embodied thereon a program being executable by a computer processor to perform a method for content delivery, the method comprising: receiving a selection designating content at a content source; downloading the designated content to local storage of a media device, wherein the content is downloaded at a maximum available network bandwidth using a radio at the media device; streaming a downloaded portion of the designated content from the local storage to a media player of the media device; and deactivating the radio when the designated content is completely downloaded 